// i(忽略大小写)  m(多行匹配)  g(全局匹配)
// y修饰符 粘连(sticky)修饰符
// const str = 'aaa_aa_a'
// const reg1 = /a+/g   // 每次匹配剩余的
// const reg2 = /a+/y   // 剩余的第一个开始匹配
// console.log(reg1.exec(str)); // aaa
// console.log(reg2.exec(str)); // aa
// console.log(reg1.exec(str)); // aa
// console.log(reg2.exec(str)); // null
// console.log(reg1.exec(str)); // a
// console.log(reg2.exec(str)); // aaa


// u修饰符 unicode
// \u0000~\uffff
const str = '\uD842\uDFB7'  //表示一个字符
console.log(str);
console.log(/^\uD842/.test(str)); //es5   出现错误 返回true
console.log(/^\uD842/u.test(str)); //es6  正确  返回false

// .除了换行符以为的任意单个字符
console.log(/^.$/.test(str));  // fasle  出现错误 返回false
console.log(/^.$/u.test(str));  // true

console.log(/\u{61}/.test('a'));  // fasle  出现错误 返回false
console.log(/\u{61}/u.test('a'));  // true

console.log(/𠮷{2}/.test('𠮷𠮷'));   // false 码点超出范围，出错了
console.log(/𠮷{2}/u.test('𠮷𠮷'));   // true